#ifndef __CMD_CP_H_
#define __CMD_CP_H_
#define SZ_PATH 64
#define SZ_BUFFER 1024

#include "cmd_handle.h"

enum file_type
{
	FT_DIR = 0,		// 目录文件
	FT_FILE = 1,	// 普通文件
	FT_ERROR = 2,	// 错误
	FT_UNKNOWN = 3, // 未知文件
};

typedef struct cp_file_info
{
	enum file_type src_ftype;
	char src_path[SZ_PATH];
	char dest_path[SZ_PATH];
} cp_file_info_t;

int cmd_cp_parse_path(cmd_t *pcmd, cp_file_info_t *pfileinfo);
int cmd_cp_execute(cmd_t *pcmd);
enum file_type get_file_type(const char *path);
int cmd_cp_parse_type(cp_file_info_t *pfileinfo);
int cmd_cp_dispatch(cp_file_info_t *pfileinfo);
int cmd_cp_file(const char *src, const char *dest);
int cmd_cp_directory(char *src, char *dest);
void make_path(cp_file_info_t *pinfo, const char *spath, const char *dpath, const char *filename);

#endif
